package com.cetool.autocms.service.sys;

import com.cetool.autocms.common.PageRequest;
import com.cetool.autocms.enumeration.OperateEnum;
import com.cetool.autocms.pojo.dto.sys.MenuInfoDTO;
import com.cetool.autocms.pojo.dto.sys.TopMenuListDTO;
import com.cetool.autocms.pojo.request.sys.BatchDeleteMenuRequest;
import com.cetool.autocms.pojo.request.sys.QueryMenuListRequest;
import com.cetool.autocms.pojo.request.sys.SaveMenuRequest;
import com.github.pagehelper.PageSerializable;

import java.util.List;

/**
 * 菜单管理服务接口
 *
 * @author 戴越
 * @date 2021/11/24
 */
public interface MenuService {

    /**
     * 分页查询菜单信息列表
     *
     * @param request 分页查询菜单列表请求实体
     * @return 菜单信息分页列表
     * @author 戴越
     * @date 2021/11/24
     */
    PageSerializable<MenuInfoDTO> listPageMenuInfo(PageRequest<QueryMenuListRequest> request);

    /**
     * 新增菜单
     *
     * @param request 新增菜单请求实体
     * @return 操作信息
     * @author 戴越
     * @date 2021/11/24
     */
    OperateEnum saveMenu(SaveMenuRequest request);

    /**
     * 一级菜单下拉列表
     *
     * @return 一级菜单信息传输实体
     * @author 戴越
     * @date 2021/11/24
     */
    List<TopMenuListDTO> queryTopMenuList();

    /**
     * 批量删除菜单
     *
     * @param request 批量删除菜单参数请求实体
     * @return 操作信息
     * @author 戴越
     * @date 2021/11/25
     */
    OperateEnum batchDeleteMenu(BatchDeleteMenuRequest request);
}
